Natural language processing is a field of computer science, artificial intelligence, and linguistics concerned with the interactions between computers and human (natural) languages. As such, natural language processing is related to the area of human-computer interaction. Many challenges in natural language processing involve natural language understanding—that is, enabling computers to derive meaning from human or natural language input.
Unstructured Information Management Architecture (UIMA) is an open, industrial-strength, scalable and extensible platform that can be used to create analytic applications or search for programs that process text or other unstructured information to find the latent meaning, relationships, and relevant facts buried within. UIMA is a software architecture which specifies component interfaces, design patterns and development roles for creating, describing, discovering, composing, and deploying analysis capabilities for text, audio, video, or other unstructured information.